A (multipart)
MIME message can be converted to
MML with the mime-to-mml
function. It works on the message in the current buffer, and
substitutes MML markup for
MIME boundaries. Non-textual parts do not have
their contents in the buffer, but instead have the contents in
separate buffers that are referred to from the
MML tags.
An MML
message can be converted back to MIME by the
mml-to-mime function.
These functions are in certain senses
“lossy”—you will not get back an identical
message if you run mime-to-mml and then
mml-to-mime. Not only will trivial things like the
order of the headers differ, but the contents of the headers may
also be different. For instance, the original message may use
base64 encoding on text, while mml-to-mime may
decide to use quoted-printable encoding, and so on.
In essence, however, these two functions should be the inverse of each other. The resulting contents of the message should remain equivalent, if not identical.